package com.njzxw.fs.commonutil.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 注释解释意义
 * 
 * @author eliay
 */
@Target(ElementType.FIELD)// 这是一个对字段的注解，还可以是包、类、变量等很多东西
@Retention(RetentionPolicy.RUNTIME)//// 保留时间，一般注解就是为了框架开发时代替配置文件使用，JVM运行时用反射取参数处理，所以一般都为RUNTIME类型
public @interface Explain{    
	
	public enum TypeName{ 
		STRING,INT,BOOLEAN;
		public int getString(TypeName t){
			switch (t) {
			case STRING:
				return 1;
			case INT:
				return 2;
			case BOOLEAN:
				return 3;
			}
			return 0;
		}
	}
	
	/**
     * 缓存对应使用的那个cacheName
     * @return
     */
    String name();
    
    /**
     * 字段类型
     * @return
     */
    TypeName TypeName() default TypeName.STRING;
    
    /**
     * 说明
     * @return
     */
    String remark() default "";
    
}
